The timeline frame function emits several signals, assuming that the
timeline will exist after these signals return. This assumption can be
invalid if signal handlers unref the timeline.
https://bugzilla.gnome.org/show_bug.cgi?id=668675
gdouble delta_progress, progress;
guint elapsed_time;
+ /* the user may unref us during the signals, so save ourselves */
+ g_object_ref (timeline);
+
priv = timeline->priv;
elapsed_time = (guint) (g_timer_elapsed (priv->timer, NULL) * 1000);
}
g_timer_stop (priv->timer);
g_signal_emit (timeline, signals [FINISHED], 0);
+ g_object_unref (timeline);
return FALSE;
}
}
+ g_object_unref (timeline);
+
return TRUE;
}